var mongodb = require('./msession');

function User(user){ 
	this.name=user.name;  
	this.password = user.password;
	this.role = user.role;
	this.orgnization = user.orgnization;
};

module.exports = User;   

User.prototype.save = function(callback){  
	var user = {                
		name:       this.name,   
		password:   this.password,
		role:       this.role,
		orgnization:this.orgnization
	};
     
	mongodb.open(function(err,db){
		if(err){     
			return callback({back:'数据库打不开'});
		};

		db.collection('users',function(err,collection){ 
			if(err){   
				mongodb.close();
				return callback({back:'数据库集合打不开'});
			};

			collection.insert(user,{  //插入数据user
				safe:true
			},function(err,user){  //插入后的回调
				mongodb.close();   //关闭数据库
				if(err){           //关闭数据库出错
					return callback(err);
				}
				callback(null,user[0])  //至此完全成功
			})
		})
	})
};

User.get = function(searchName, callback){  //User.get()方法用于用户数据的读取
	mongodb.open(function(err,db){
		if(err){   //打开数据出错报个错
			return callback(err);
		}
		db.collection('users',function(err,collection){
			if(err){   //  查找集合‘users’出错
				mongodb.close();  //关闭数据库
				return callback(err)  //报个错
			}
            
			collection.findOne({  //在集合中查找name键值
				name:searchName   //为searchName形参值
			},function(err,user){  //启动回调
				mongodb.close();  //关闭数据库
				if(err){          //如果报错
				  return callback(err)  //返回错误信息
				}
				callback(null,user); //找到这个用户名，返回该用户名
			})
		})
	})
};

User.getAll = function(name,callback){  //User.get()方法用于用户数据的读取
	mongodb.open(function(err,db){
		if(err){   //打开数据出错报个错
			return callback(err);
		}
		db.collection('users',function(err,collection){
			if(err){   //  查找集合‘users’出错
				mongodb.close();  //关闭数据库
				return callback(err)  //报个错
			}

			collection.find({}).sort({
				time:-1
			}).toArray(function(err,docs){
				mongodb.close();
				if(err){
					return callback(err);
				}
				callback(null,docs);
			})
		})
	})
};






